package com.mp.db.jpa.modelo;

import java.io.Serializable;
import javax.persistence.Cacheable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;


@Entity
@NamedQueries({
@NamedQuery(name="NomeclaturaLocal.findAllByUser", query="SELECT nom FROM NomeclaturaLocal nom WHERE nom.usuario.idUsuario = :id"),
@NamedQuery(name="NomeclaturaLocal.findAllById", query="SELECT nom FROM NomeclaturaLocal nom WHERE nom.idNomeclaturaLocal = :id"),
@NamedQuery(name="NomeclaturaLocal.findAllByDesc", query="SELECT nom FROM NomeclaturaLocal nom WHERE nom.descNomeclaturaLocal = :desc and nom.usuario.idUsuario = :idUsuario")
})

@Cacheable(false)
public class NomeclaturaLocal implements Serializable 
{
    @Id @GeneratedValue(strategy=GenerationType.IDENTITY)
    private int idNomeclaturaLocal;
    
    @Column
    private String descNomeclaturaLocal;
    
    @Column
    private String labelNomeclaturaLocal;

      
    @ManyToOne(cascade= CascadeType.PERSIST,fetch= FetchType.EAGER)
    @JoinColumn(name="idgeolocalizacao")
    private GeoLocalizacao geoLocalizacao;
     
    @ManyToOne(fetch= FetchType.EAGER)
    @JoinColumn(name="idusuario")
    private Usuario usuario;

    /**
     * @return the idNomeclaturaLocal
     */
    public int getIdNomeclaturaLocal() {
        return idNomeclaturaLocal;
    }

    /**
     * @param idNomeclaturaLocal the idNomeclaturaLocal to set
     */
    public void setIdNomeclaturaLocal(int idNomeclaturaLocal) {
        this.idNomeclaturaLocal = idNomeclaturaLocal;
    }

    /**
     * @return the descNomeclaturaLocal
     */
    public String getDescNomeclaturaLocal() {
        return descNomeclaturaLocal;
    }

    /**
     * @param descNomeclaturaLocal the descNomeclaturaLocal to set
     */
    public void setDescNomeclaturaLocal(String descNomeclaturaLocal) {
        this.descNomeclaturaLocal = descNomeclaturaLocal;
    }

    /**
     * @return the geoLocalizacao
     */
    public GeoLocalizacao getGeoLocalizacao() {
        return geoLocalizacao;
    }

    /**
     * @param geoLocalizacao the geoLocalizacao to set
     */
    public void setGeoLocalizacao(GeoLocalizacao geoLocalizacao) {
        this.geoLocalizacao = geoLocalizacao;
    }

    /**
     * @return the usuario
     */
    public Usuario getUsuario() {
        return usuario;
    }

    /**
     * @param usuario the usuario to set
     */
    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }
    
    
     public String getLabelNomeclaturaLocal() {
        return labelNomeclaturaLocal;
    }

    public void setLabelNomeclaturaLocal(String labelNomeclaturaLocal) {
        this.labelNomeclaturaLocal = labelNomeclaturaLocal;
    }
}
